package com.indoornavi.verbal.choreme;

import java.util.ArrayList;

import com.indoornavi.verbal.graph.Edge;
import com.indoornavi.verbal.graph.Pair;
import com.indoornavi.verbal.graph.Vertex;

public class Choreme {

  private Integer multiplicity;

  private int instruction;

  private Boolean isDChoreme;

  private Boolean isEChoreme;

  private ArrayList<Vertex> vertices;
  
  private ArrayList<Edge> edges;

  public Choreme(){
	  this.multiplicity=0;
	  this.instruction=Pair.STRAIGHT;
	  this.isDChoreme=false;
	  this.isEChoreme=false;
	  this.vertices=new ArrayList<Vertex>();
	  this.edges=new ArrayList<Edge>();
  }
  
  public Integer getMultiplicity() {
	  return this.multiplicity;
  }

  public void setMultiplicity(Integer multiplicity) {
	  this.multiplicity=multiplicity.intValue();
  }

  public int getInstruction() {
	  return this.instruction;
  }

  public void setInstruction(int instruction) {
	  this.instruction=instruction;
  }

  public Boolean isDChoreme() {
	  return this.isDChoreme;
  }

  public void setIsDChoreme(Boolean isDChoreme) {
	  this.isDChoreme=isDChoreme;
  }

  public Boolean isEChoreme() {
	  return this.isEChoreme;
  }

  public void setIsEChoreme(Boolean isEChoreme) {
	  this.isEChoreme=isEChoreme;
  }

  public Vertex getVertex(Integer position) {
	  return this.vertices.get(position.intValue());
  }

  public void setVertex(Integer position, Vertex vertex) {
	  this.vertices.set(position.intValue(), vertex);
  }
  
  public void addVertex(Vertex vertex) {
	  this.vertices.add(vertex);
  }
  
  public Edge getEdge(Integer position){
	  return this.edges.get(position);
  }
  
  public void addEdge(Edge edge){
	  this.edges.add(edge);
  }

}